[백준]단계별풀이_백트래킹


15649번 : N과 M (1)

from itertools import permutations
n, m = map(int, input().strip().rsplit())
for i in list(permutations(range(1, n+1) , m)):
    print(' '.join(map(str, i)))

15650번 : N과 M (2)

from itertools import combinations
n, m = map(int, input().strip().rsplit())
for i in list(combinations(range(1, n+1) , m)):
    print(' '.join(map(str, i)))

15651번 : N과 M (3)

* : 가변 인수, 언패킹

n,m = map(int,input().split())
numbers = [i+1 for i in range(n)] # 1~n까지
is_number = [0 for _ in range(m)] # 출력 개수
def dfs(idx):
    if idx >= m: # 0부터 m출력개수 되면
        print(*is_number)
        return
    for i in range(n):
        is_number[idx] = numbers[i]
        dfs(idx+1)

dfs(0)

15652번 : N과 M (4)

from itertools import combinations_with_replacement

n,m = map(int,input().split())
for i in combinations_with_replacement(range(1, n+1), m):
    print(*i)

Hello, I'm@nickhealthy
개발자를 꿈꾸고, 파이썬과 클라우드에 관심이 많은 비전공자

Github